The present invention relates generally to echo cancellers, and more particularly to estimating and applying a step size value for least mean squares echo cancellers.
Echo is a well known impairment of telecommunication systems which causes a degradation in the quality of transmission. One type of echo is a result of the design of a typical telephony network and is illustrated in FIG. 1A which shows a simplified connection between two telephones 102 and 104. Subscriber 102 is connected to the network via two-wire subscriber loop 106 and subscriber 104 is connected to the network via two-wire subscriber loop 108. The two-wire subscriber loops 106 and 108 transmit bidirectional voice signals over the twisted wire pair. Within the access network, there are four-wire trunks 110 and 112 which carry uni-directional voice signals. Trunk 110 carries signals from telephone 102 to telephone 104, and trunk 112 carries signals from telephone 104 to telephone 102. The segregation of the signals within the access network is necessary where it is desired to insert various network components, such as amplifiers and digital switches. The four-wire trunk lines of the access network, and the two-wire subscriber loops, are connected by hybrids 114 and 116. The hybrids convert the signals from two-wire transmission to four-wire transmission. Thus, the function of hybrid 116 is to direct the signal energy arriving from telephone 102 via trunk line 110 to the two-wire subscriber loop 108 without allowing it to return to telephone 102 via trunk line 112. However, due to characteristics of the network (e.g., impedance mismatches), some of the signal energy is returned to telephone 102, as illustrated by the echo 118. This results in network echo as the user of telephone 102 will hear a delayed version of his/her speech. The echo caused by the function of a hybrid is similarly present at the point of interconnection between the traditional telephone network and next generation packet networks where four wire trunks are converted to the digital domain for transmission over a packet network, such as an IP network or ATM network. The foregoing discussion illustrates an electrically generated echo.
Another type of echo is acoustic echo, which is a problem with speakerphones, and occurs when the sound output from the speaker is acoustically coupled back into the microphone and gets transmitted back to the far end as echo as illustrated in FIG. 1B. FIG. 1B shows a speakerphone 150 connected to a 2-wire local loop 152 via hybrid 154. Incoming voice signals are amplified by speaker amplifier 158 and are then passed into room 160 via speaker 162. The sound waves from speaker 162 reflect off of the walls and other objects in room 160 and return to microphone 164 as echo 166. This echo is amplified by microphone amplifier 168 and eventually transmitted to the far end via local loop 152. Acoustic echoes generally have more delay and a longer reverberation time than electrically generated echoes due to the fact that the echo transmission means is reflected sound waves. It is noted that the function of hybrid 154 also results in line echo 156 as discussed above in connection with FIG. 1A.
Echo in telecommunications systems and devices is a well known problem and various solutions exist to reduce echo. One current solution is the use of an echo canceller, which, at a high level, uses a copy of the signal incoming to the listener to estimate the echo that should return on the outgoing line from the listener. This estimate is then subtracted from the outgoing signal in order to cancel the echo. During periods when there is no signal on the outgoing line (e.g., the listener is not talking) the echo canceller expects a near-zero signal on the outgoing line, with only ambient noise present. Deviations from this value are used to update the calculation of the echo estimate such that this deviation is minimized. The echo canceller is adaptive in that it uses deviations from the expected near-zero signal to adapt its operation in order to minimize the deviation. Adaptation is particularly important with acoustic echo cancellers because the acoustic echo path changes whenever an object collocated with the speakerphone, such as a chair or person, changes position.
One popular implementation of echo cancellers is by means of digital filters, whose coefficients must be updated in order to model the impulse response of the echo path. Adaptive filter algorithms are well known in the art and have the ability to process signals coming from an unknown environment in order to extract the needed information. Adaptive filters consist of two parts, the filter and the adaptation algorithm. The filter actually produces the signal estimate, while the adaptation algorithm updates the coefficients of the filter. One common family of adaptive algorithms for echo cancellers are least mean squares (LMS) based algorithms. These LMS algorithms are well known in the art, and will be discussed in further detail below. One current problem with these algorithms is that their implementation is highly computation intensive, and optimal performance, i.e., deep convergence, is difficult to obtain in resource constrained digital signal processing applications. In particular, it is the adaptation algorithms (i.e., coefficient calculation) that require a significant amount of processing power. For each sample, every filter coefficient in the classic normalized LMS algorithm is updated by a quotient whose numerator is the product of the excitation signal, the error signal and the step size, and whose denominator is a power estimate of the excitation signal. This process is the most computationally intensive part of the echo canceller, performing two multiplications, one division (or the equivalent combination of an inverse function and multiplication), three product stores, and several shifts necessary to maintain the whole number portion of the product. In the process of these multiplications, the products are often truncated because of the limited word length in the processor accumulator or memory registers. The impact of value truncation is a loss of precision especially for small update values and this has the effect of preventing the echo canceller from reaching its optimal performance. Furthermore, division is a mathematical operation that is not supported by almost all digital signal processors because it is hardware intensive to implement. As a result, the division operation is usually performed as the combination of a software inverse function and multiplication. The inverse function is an iterative algorithm that is itself computationally intensive. As such, prior art implementations of LMS echo cancellers tend to be computationally intensive and incur precision errors that degrade echo canceller performance.
What is needed therefore, is an improved system and method for implementing an echo canceller that provides deep convergence with reduced computational complexity.